home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / reiser4 / bitmap.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  80 lines

  1. /* Copyright (C) 2001, 2002, 2003, 2004 by Hans Reiser, licensing governed by
  2.    reiser4progs/COPYING.
  3.    
  4.    bitmap.h -- bitmap functions. Bitmap is used by block allocator plugin and
  5.    fsck program. See libmisc/bitmap.c for more details. */
  6.  
  7. #ifndef AUX_BITMAP_H
  8. #define AUX_BITMAP_H
  9.  
  10. #ifndef ENABLE_MINIMAL
  11. #include <aal/libaal.h>
  12.  
  13. #define AUX_BITMAP_MAGIC    "R4BtMp"
  14.  
  15. /* Bitmap structure. It contains: pointer to device instance bitmap opened on,
  16.    start on device, total blocks bitmap described, used blocks, pointer to
  17.    memory chunk bit array placed in and bit array size. */
  18. struct reiser4_bitmap {
  19.     uint64_t marked;
  20.     uint64_t total;
  21.     uint32_t size;
  22.     
  23.     char *map;
  24. };
  25.  
  26. typedef struct reiser4_bitmap reiser4_bitmap_t;
  27.  
  28. extern void reiser4_bitmap_mark(reiser4_bitmap_t *bitmap, uint64_t bit);
  29. extern void reiser4_bitmap_clear(reiser4_bitmap_t *bitmap, uint64_t bit);
  30. extern int reiser4_bitmap_test(reiser4_bitmap_t *bitmap, uint64_t bit);
  31.  
  32. extern void reiser4_bitmap_mark_region(reiser4_bitmap_t *bitmap, 
  33.                        uint64_t start,  uint64_t count);
  34.  
  35. extern void reiser4_bitmap_clear_region(reiser4_bitmap_t *bitmap, 
  36.                     uint64_t start, uint64_t count);
  37.  
  38. extern bool_t reiser4_bitmap_test_region_marked(reiser4_bitmap_t *bitmap,
  39.                         uint64_t start, 
  40.                         uint64_t count);
  41.  
  42. extern bool_t reiser4_bitmap_test_region(reiser4_bitmap_t *bitmap,
  43.                      uint64_t start,
  44.                      uint64_t count,
  45.                      int marked);
  46.  
  47. extern void reiser4_bitmap_invert(reiser4_bitmap_t *bitmap);
  48.  
  49. extern uint64_t reiser4_bitmap_find_region(reiser4_bitmap_t *bitmap,
  50.                        uint64_t *start,
  51.                        uint64_t count,
  52.                        int marked);
  53.  
  54. extern uint64_t reiser4_bitmap_find_marked(reiser4_bitmap_t *bitmap, 
  55.                        uint64_t start);
  56.  
  57. extern uint64_t reiser4_bitmap_find_cleared(reiser4_bitmap_t *bitmap, 
  58.                         uint64_t start);
  59.  
  60. extern uint64_t reiser4_bitmap_calc_marked(reiser4_bitmap_t *bitmap);
  61. extern uint64_t reiser4_bitmap_calc_cleared(reiser4_bitmap_t *bitmap);
  62.  
  63. extern uint64_t reiser4_bitmap_marked(reiser4_bitmap_t *bitmap);
  64. extern uint64_t reiser4_bitmap_cleared(reiser4_bitmap_t *bitmap);
  65.  
  66. extern reiser4_bitmap_t *reiser4_bitmap_create(uint64_t len);
  67. extern reiser4_bitmap_t *reiser4_bitmap_clone(reiser4_bitmap_t *bitmap);
  68.  
  69. extern void reiser4_bitmap_resize(reiser4_bitmap_t *bitmap, uint64_t len);
  70. extern void reiser4_bitmap_close(reiser4_bitmap_t *bitmap);
  71.  
  72. extern reiser4_bitmap_t *reiser4_bitmap_unpack(aal_stream_t *stream);
  73. extern errno_t reiser4_bitmap_pack(reiser4_bitmap_t *bitmap, 
  74.                    aal_stream_t *stream);
  75.  
  76. #endif
  77.  
  78. #endif
  79.  
  80.